#ifndef __TASK_HPP__
#define __TASK_HPP__

#include<iostream>

class Task {
public:
    Task(int x = 0, int y = 0, char op = '+')
      :_x(x)
      ,_y(y)
      ,_op(op)
  {}
    ~Task() {}

    void Run() {
      int result = 0;
      switch(_op)
      {
        case '+':
          result = _x + _y;
          break;
        case '-':
          result = _x - _y;
          break;
        case '*':
          result = _x * _y;
          break;
        case '/':
          if(_y == 0) {
            std::cout << "Warning:div zero!!" << std::endl;
            result = -1;
          } else {
            result = _x / _y;
          }
          break;
        case '%':
          if(_y == 0) {
            std::cout << "Warning:mod zero!!" << std::endl;
            result = -1;
          } else {
            result = _x % _y;
          }
          break;
        default:
          break;
      }
      std::cout << _x << _op << _y << '=' << result << std::endl;
    }

private:
  int _x;
  int _y;
  char _op;
};


#endif
